package cn.cangnova.cangjie.psi

import com.intellij.psi.tree.TokenSet

object CjTokenSets {
    val KEYWORDS = TokenSet.create(
        CjTokens.PACKAGE_KEYWORD,
        CjTokens.IMPORT_KEYWORD,
        CjTokens.MACRO_KEYWORD,
        CjTokens.AS_KEYWORD,
        CjTokens.THIS_KEYWORD,
        CjTokens.SUPER_KEYWORD,
        CjTokens.PUBLIC_KEYWORD,
        CjTokens.PRIVATE_KEYWORD,
        CjTokens.PROTECTED_KEYWORD,
        CjTokens.INTERNAL_KEYWORD,
        CjTokens.CLASS_KEYWORD,
        CjTokens.STRUCT_KEYWORD,
        CjTokens.INTERFACE_KEYWORD,
        CjTokens.FUNC_KEYWORD,
        CjTokens.MAIN_KEYWORD,
        CjTokens.LET_KEYWORD,
        CjTokens.VAR_KEYWORD,
        CjTokens.CONST_KEYWORD,
        CjTokens.TYPE_ALIAS_KEYWORD,
        CjTokens.INIT_KEYWORD,
        CjTokens.IF_KEYWORD,
        CjTokens.ELSE_KEYWORD,
        CjTokens.CASE_KEYWORD,
        CjTokens.TRY_KEYWORD,
        CjTokens.CATCH_KEYWORD,
        CjTokens.FINALLY_KEYWORD,
        CjTokens.FOR_KEYWORD,
        CjTokens.DO_KEYWORD,
        CjTokens.WHILE_KEYWORD,
        CjTokens.THROW_KEYWORD,
        CjTokens.RETURN_KEYWORD,
        CjTokens.CONTINUE_KEYWORD,
        CjTokens.BREAK_KEYWORD,
        CjTokens.IS_KEYWORD,
        CjTokens.IN_KEYWORD,
        CjTokens.MATCH_KEYWORD,
        CjTokens.FROM_KEYWORD,
        CjTokens.WHERE_KEYWORD,
        CjTokens.EXTEND_KEYWORD,
        CjTokens.SPAWN_KEYWORD,
        CjTokens.SYNCHRONIZED_KEYWORD,
        CjTokens.QUOTE_KEYWORD,
        CjTokens.STATIC_KEYWORD,
        CjTokens.OVERRIDE_KEYWORD,
        CjTokens.REDEF_KEYWORD,
        CjTokens.ABSTRACT_KEYWORD,
        CjTokens.OPEN_KEYWORD,
        CjTokens.OPERATOR_KEYWORD,
        CjTokens.FOREIGN_KEYWORD,
        CjTokens.INOUT_KEYWORD,
        CjTokens.PROP_KEYWORD,
        CjTokens.MUT_KEYWORD,
        CjTokens.UNSAFE_KEYWORD,
        CjTokens.GET_KEYWORD,
        CjTokens.SET_KEYWORD
    )

    val BASICTYPES  = TokenSet.create(
        CjTokens.INT8_KEYWORD,
        CjTokens.INT16_KEYWORD,
        CjTokens.INT32_KEYWORD,
        CjTokens.INT64_KEYWORD,
        CjTokens.INTNATIVE_KEYWORD,
        CjTokens.UINT8_KEYWORD,
        CjTokens.UINT16_KEYWORD,
        CjTokens.UINT32_KEYWORD,
        CjTokens.UINT64_KEYWORD,
        CjTokens.UINTNATIVE_KEYWORD,
        CjTokens.FLOAT16_KEYWORD,
        CjTokens.FLOAT32_KEYWORD,
        CjTokens.FLOAT64_KEYWORD,
        CjTokens.RUNE_KEYWORD,
        CjTokens.BOOL_KEYWORD,
        CjTokens.UNIT_KEYWORD,
        CjTokens.NOTHING_KEYWORD,
        CjTokens.VARRAY_KEYWORD
    )
}